pub fn is_armstrong_number(num: u32) -> bool {
    let str_num = num.to_string();
    let power = str_num.len();
    let digit_enum = str_num
        .chars()
        .enumerate();
    let mut result: u64 = 0;
    for (_, c) in digit_enum {
        let option = c.to_digit(10).unwrap() as u64;
        result += option.pow(power as u32);
    }
    result == num as u64
}

#[test]
#[ignore]
fn properly_handles_overflow() {
    assert!(!is_armstrong_number(4_106_098_957));
}
